09. 编程思维和初学者心态
编程思维的养成
知易行难。在你掌握数据类型、运算符、控制流、函数等编程基础知识以后,也许仍然会在实际任务(比如Udacity的课程项目)面前感到无从下手。这是因为编程思维的养成不仅仅是编程语法的记忆,更重要的是解决问题的能力。我们建议你在剖析实际任务时,采用自顶向下的设计方法。
1. 任务拆解
任务拆解是指把问题分成较小的部分,从而简化问题的能力。通过分解,把问题切割为能用最小代码实现的模块,或分成具体的任务。
2. 模式识别
接着根据已有的知识和经验,找出新问题和以前解决过的问题的相似性,举一反三琢磨出规律。
3. 逻辑抽象
在解释问题或解决方案时去掉次要细节的能力。也就是说,将想法概念化的能力。比如,将问题里涉及的数据抽象到数据结构(变量,数组等),把数据处理过程可重复执行部分抽象成函数模块。
4. 精确表达
根据前三步的分析结果,设计步骤,写出算法,解决问题。
初学者心态
最后,在实践中应用编程思维解决问题时,初学者的心态十分重要。这里是一些额外建议,供你参考:
首先要有信心。
虽然可能你看了几个小时,找了一些材料,但却压根儿就没能把程序运行起来。但相信我,基本上所有程序员都是这么过来的,工作人员可以给你很多截图来印证这一点。
写代码,写更多的代码。
光看教程,编不出程序。跟着课程视频开始写,学着做练习、写小程序片段,然后写完整的项目,Learning by doing。
切勿过于钻牛角尖。
遇到编程问题优先自己寻找解决方式,但这并不代表你应该在一个小问题/小练习中耗费过多时间。5年经验的程序员也不可能对所有面试题都对答如流,所以如果你在一个小练习上花费超过1小时,请及时发出求助,并告诉助教你的思路。
除了学习编程语言,也兼顾补一点英语。
编程不但要学写代码,还要学会看代码,更要会调试代码,读懂你自己程序的报错信息。作为初学者,你可以尝试上一节常用工具中提到的调试工具。